www.gusucode.com > 网贷计算器网页版 v1.1.2源码程序 > 网贷计算器网页版 v1.1.2/Calculator/Calculator/js/compute.js

    /* 
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

function computeLoanData(params) {
	var cpRate = parseFloat(params['cpRate']);//利息
	var rateUnit = params['rateUnit'];//year or month
	var prizeRate = parseFloat(params['prizeRate']); //奖励
	var manageRate = parseFloat(params['manageRate']);//管理费
	var limitCount = parseFloat(params['limitCount']);//期限
	var limitUnit = params['limitUnit'];//期限单位  year , day 
	var bidAmount = parseFloat(params['bidAmount']);//投资金额	 
	//A 到期还本息 //B 按季度还本息 //C 月还息到期还本 //D 按月还本息
	var monthRate = rateUnit == 'month' ? cpRate : parseFloat(cpRate)/12; monthRate = monthRate * 0.01;
	var monthCount = limitUnit == 'month' ? limitCount : parseFloat(limitCount)/30; 
	var monthCount = parseFloat(monthCount);
	var earnInter = bidAmount * monthRate * monthCount; earnInter = Math.round(earnInter * 100)/100;	

	var a_earnInter = earnInter;	
	var season = Math.ceil(monthCount/3);
	season = parseFloat(season);
	var tmpYearRate = monthRate * 12 * (1 - manageRate * 0.01);
	var tmpMonthRate = tmpYearRate/12;
	var b_earnInter =  (bidAmount * tmpYearRate * 100 * (1 + season) / 800)/(1- manageRate * 0.01);	b_earnInter = Math.round(b_earnInter*100)/100;	
	var c_earnInter = earnInter;	
	var d_earnInter = bidAmount * tmpMonthRate * Math.pow((1 + tmpMonthRate),monthCount) /(Math.pow((1 + tmpMonthRate),monthCount)- 1) * monthCount - bidAmount;	
	d_earnInter = d_earnInter / (1- manageRate * 0.01);
	d_earnInter = Math.round(d_earnInter*100)/100;
	if(limitUnit == 'day') {
		b_earnInter = earnInter; 
		c_earnInter = earnInter; 
		d_earnInter = earnInter; 
	}

	var a_manageAmount = a_earnInter * manageRate * 0.01; a_manageAmount = Math.round(a_manageAmount*100)/100;
	var b_manageAmount = b_earnInter * manageRate * 0.01; b_manageAmount = Math.round(b_manageAmount*100)/100;
	var c_manageAmount = c_earnInter * manageRate * 0.01; c_manageAmount = Math.round(c_manageAmount*100)/100;
	var d_manageAmount = d_earnInter * manageRate * 0.01; d_manageAmount = Math.round(d_manageAmount*100)/100;

	var prizeAmount = bidAmount * prizeRate * 0.01; prizeAmount = Math.round(prizeAmount*100)/100;	

	var a_total = a_earnInter - a_manageAmount + prizeAmount; a_total = Math.round(a_total*100)/100;	
	var b_total = b_earnInter - b_manageAmount + prizeAmount; b_total = Math.round(b_total*100)/100;
	var c_total = c_earnInter - c_manageAmount + prizeAmount; c_total = Math.round(c_total*100)/100;
	var d_total = d_earnInter - d_manageAmount + prizeAmount; d_total = Math.round(d_total*100)/100;
		
	var a_to_month_rate = (a_total/monthCount)/bidAmount;a_to_month_rate = Math.round(a_to_month_rate*10000)/100;
	var a_to_year_rate = a_to_month_rate * 12;a_to_year_rate = Math.round(a_to_year_rate*100)/100;
	var b_to_year_rate = (tmpYearRate * 3 + 24 * prizeRate * 0.01 /(monthCount/3+1)) / 3 * 100;b_to_year_rate = Math.round(b_to_year_rate*100)/100;
	var b_to_month_rate = b_to_year_rate / 12;b_to_month_rate = Math.round(b_to_month_rate*100)/100;
	var c_to_month_rate = (c_total/monthCount)/bidAmount;c_to_month_rate = Math.round(c_to_month_rate*10000)/100;
	var c_to_year_rate = c_to_month_rate * 12;c_to_year_rate = Math.round(c_to_year_rate*100)/100;
	var d_to_year_rate  = 24.00 * prizeRate / (monthCount + 1) + (monthRate * 12) * (1- (manageRate * 0.01)) * 100;d_to_year_rate = Math.round(d_to_year_rate*100)/100; 
	var d_to_month_rate = d_to_year_rate / 12;d_to_month_rate = Math.round(d_to_month_rate*100)/100;
	if(limitUnit == 'day') {
		b_to_month_rate = a_to_month_rate; 
		b_to_year_rate = a_to_year_rate; 
		c_to_month_rate = a_to_month_rate; 
		c_to_year_rate = a_to_year_rate;
		d_to_month_rate = a_to_month_rate; 
		d_to_year_rate = a_to_year_rate;
	}	

	var a_fl_year_rate = (Math.pow((1 + a_to_month_rate * 0.01 * monthCount), 12/monthCount) - 1) * 100;a_fl_year_rate = Math.round(a_fl_year_rate*100)/100; 
	var a_fl_month_rate = a_fl_year_rate / 12;a_fl_month_rate = Math.round(a_fl_month_rate*100)/100;
	var b_fl_year_rate = (Math.pow((1 + b_to_year_rate / 400), 4) - 1) * 100; b_fl_year_rate = Math.round(b_fl_year_rate*100)/100; 
	var b_fl_month_rate = b_fl_year_rate / 12;b_fl_month_rate = Math.round(b_fl_month_rate*100)/100;
	var c_fl_year_rate = (Math.pow((1 + c_to_month_rate * 0.01 * monthCount), 12/monthCount) - 1) * 100;c_fl_year_rate = Math.round(c_fl_year_rate*100)/100; 
	var c_fl_month_rate = c_fl_year_rate / 12;c_fl_month_rate = Math.round(c_fl_month_rate*100)/100;
	var d_fl_year_rate = (Math.pow((1 + d_to_month_rate * 0.01), 12) - 1) * 100;d_fl_year_rate = Math.round(d_fl_year_rate*100)/100; 
	var d_fl_month_rate = d_fl_year_rate / 12;d_fl_month_rate = Math.round(d_fl_month_rate*100)/100; 
	if(limitUnit == 'day') {
		b_fl_year_rate = a_fl_year_rate; 
		b_fl_month_rate = a_fl_month_rate; 
		c_fl_year_rate = a_fl_year_rate; 
		c_fl_month_rate = a_fl_month_rate;
		d_fl_year_rate = a_fl_year_rate; 
		d_fl_month_rate = a_fl_month_rate;
	}
	/*
	if(isNaN(a_total)) {
		a_to_year_rate = 0;a_to_month_rate=0;b_to_year_rate = 0;b_to_month_rate=0;	
		c_to_year_rate = 0;c_to_month_rate=0;d_to_year_rate = 0;d_to_month_rate=0;	
		a_fl_year_rate = 0;a_fl_month_rate=0;b_fl_year_rate = 0;b_fl_month_rate=0;	
		c_fl_year_rate = 0;c_fl_month_rate=0;d_fl_year_rate = 0;d_fl_month_rate=0;	
		a_earnInter = 0; b_earnInter = 0;c_earnInter = 0;d_earnInter = 0;
		a_manageAmount = 0;b_manageAmount = 0;c_manageAmount = 0;d_manageAmount = 0;	
		prizeAmount = 0; a_total = 0; b_total = 0; c_total = 0; d_total = 0; 
	}
	*/
	//A 到期还本息 //B 按季度还本息 //C 月还息到期还本 //D 按月还本息
	var result = {};
	//年化利率, 月化利率
	result['a_to_year_rate'] = a_to_year_rate; result['a_to_month_rate'] = a_to_month_rate;
	result['b_to_year_rate'] = b_to_year_rate; result['b_to_month_rate'] = b_to_month_rate;
	result['c_to_year_rate'] = c_to_year_rate; result['c_to_month_rate'] = c_to_month_rate;
	result['d_to_year_rate'] = d_to_year_rate; result['d_to_month_rate'] = d_to_month_rate;
	//复利 年利率, 复利 月利率
	result['a_fl_year_rate'] = a_fl_year_rate; result['a_fl_month_rate'] = a_fl_month_rate;
	result['b_fl_year_rate'] = a_fl_year_rate; result['b_fl_month_rate'] = a_fl_month_rate;
	result['c_fl_year_rate'] = a_fl_year_rate; result['c_fl_month_rate'] = a_fl_month_rate;
	result['d_fl_year_rate'] = a_fl_year_rate; result['d_fl_month_rate'] = a_fl_month_rate;
	//利息金额
	result['a_earnInter'] = a_earnInter; result['b_earnInter'] = b_earnInter;
	result['c_earnInter'] = c_earnInter; result['d_earnInter'] = d_earnInter;
	//管理费
	result['a_manageAmount'] = a_manageAmount; result['b_manageAmount'] = b_manageAmount;
	result['c_manageAmount'] = c_manageAmount; result['d_manageAmount'] = d_manageAmount;
	//奖励金额
	result['prizeAmount'] = prizeAmount;
	//总收益
	result['a_total'] = a_total; result['b_total'] = b_total;
	result['c_total'] = c_total; result['d_total'] = d_total;
	return result;
}